﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BTKERP.Model.Inventory
{
    #region ProductInfo
    /// <summary>
    /// This object represents the properties and methods of a Product.
    /// </summary>
    [Serializable]
    public class ProductInfo
    {
        protected string _id;
        protected string _code = String.Empty;
        protected string _name = String.Empty;
        protected string _physicalBarcode = String.Empty;
        protected string _packBarcode = String.Empty;
        protected string _description = String.Empty;
        protected int _categoryId;
        protected int _physicalUnitId;
        protected int _packUnitId;
        protected decimal _numberPerPhysical;
        protected int _defaultSupplierId;
        protected decimal _minOrderQuantity;
        protected decimal _maxOrderQuantity;
        protected decimal _physicalWeight;
        protected decimal _physicalLength;
        protected decimal _physicalWidth;
        protected decimal _physicalHeight;
        protected decimal _packWeight;
        protected decimal _packLength;
        protected decimal _packWidth;
        protected decimal _packHeight;
        protected decimal _estimatePhysicalCost;
        protected decimal _estimatePackCost;
        protected decimal _physicalSalePrice;
        protected decimal _packSalePrice;
        protected DateTime _createdOn;
        protected string _createdBy = String.Empty;
        protected DateTime _updatedOn;
        protected string _updatedBy = String.Empty;
        protected bool _isDeleted;

        public ProductInfo()
        {
        }

        #region Public Properties
        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public string Code
        {
            get { return _code; }
            set { _code = value; }
        }

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public string PhysicalBarcode
        {
            get { return _physicalBarcode; }
            set { _physicalBarcode = value; }
        }

        public string PackBarcode
        {
            get { return _packBarcode; }
            set { _packBarcode = value; }
        }

        public string Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public int CategoryId
        {
            get { return _categoryId; }
            set { _categoryId = value; }
        }

        public int PhysicalUnitId
        {
            get { return _physicalUnitId; }
            set { _physicalUnitId = value; }
        }

        public int PackUnitId
        {
            get { return _packUnitId; }
            set { _packUnitId = value; }
        }

        public decimal NumberPerPhysical
        {
            get { return _numberPerPhysical; }
            set { _numberPerPhysical = value; }
        }

        public int DefaultSupplierId
        {
            get { return _defaultSupplierId; }
            set { _defaultSupplierId = value; }
        }

        public decimal MinOrderQuantity
        {
            get { return _minOrderQuantity; }
            set { _minOrderQuantity = value; }
        }

        public decimal MaxOrderQuantity
        {
            get { return _maxOrderQuantity; }
            set { _maxOrderQuantity = value; }
        }

        public decimal PhysicalWeight
        {
            get { return _physicalWeight; }
            set { _physicalWeight = value; }
        }

        public decimal PhysicalLength
        {
            get { return _physicalLength; }
            set { _physicalLength = value; }
        }

        public decimal PhysicalWidth
        {
            get { return _physicalWidth; }
            set { _physicalWidth = value; }
        }

        public decimal PhysicalHeight
        {
            get { return _physicalHeight; }
            set { _physicalHeight = value; }
        }

        public decimal PackWeight
        {
            get { return _packWeight; }
            set { _packWeight = value; }
        }

        public decimal PackLength
        {
            get { return _packLength; }
            set { _packLength = value; }
        }

        public decimal PackWidth
        {
            get { return _packWidth; }
            set { _packWidth = value; }
        }

        public decimal PackHeight
        {
            get { return _packHeight; }
            set { _packHeight = value; }
        }

        public decimal EstimatePhysicalCost
        {
            get { return _estimatePhysicalCost; }
            set { _estimatePhysicalCost = value; }
        }

        public decimal EstimatePackCost
        {
            get { return _estimatePackCost; }
            set { _estimatePackCost = value; }
        }

        public decimal PhysicalSalePrice
        {
            get { return _physicalSalePrice; }
            set { _physicalSalePrice = value; }
        }

        public decimal PackSalePrice
        {
            get { return _packSalePrice; }
            set { _packSalePrice = value; }
        }

        public DateTime CreatedOn
        {
            get { return _createdOn; }
            set { _createdOn = value; }
        }

        public string CreatedBy
        {
            get { return _createdBy; }
            set { _createdBy = value; }
        }

        public DateTime UpdatedOn
        {
            get { return _updatedOn; }
            set { _updatedOn = value; }
        }

        public string UpdatedBy
        {
            get { return _updatedBy; }
            set { _updatedBy = value; }
        }

        public bool IsDeleted
        {
            get { return _isDeleted; }
            set { _isDeleted = value; }
        }

        public string CategoryName { get; set; }
        public string PhysicalUnitName { get; set; }
        public string PackUnitName { get; set; }
        #endregion

    }
    #endregion
}
